| 1: | eq(0,0) | → true | |
| 2: | eq(0,s(X)) | → false | |
| 3: | eq(s(X),0) | → false | |
| 4: | eq(s(X),s(Y)) | → eq(X,Y) | |
| 5: | rm(N,nil) | → nil | |
| 6: | rm(N,add(M,X)) | → ifrm(eq(N,M),N,add(M,X)) | |
| 7: | ifrm(true,N,add(M,X)) | → rm(N,X) | |
| 8: | ifrm(false,N,add(M,X)) | → add(M,rm(N,X)) | |
| 9: | purge(nil) | → nil | |
| 10: | purge(add(N,X)) | → add(N,purge(rm(N,X))) | |
| 11: | EQ(s(X),s(Y)) | → EQ(X,Y) | |
| 12: | RM(N,add(M,X)) | → IFRM(eq(N,M),N,add(M,X)) | |
| 13: | RM(N,add(M,X)) | → EQ(N,M) | |
| 14: | IFRM(true,N,add(M,X)) | → RM(N,X) | |
| 15: | IFRM(false,N,add(M,X)) | → RM(N,X) | |
| 16: | PURGE(add(N,X)) | → PURGE(rm(N,X)) | |
| 17: | PURGE(add(N,X)) | → RM(N,X) | |